#include "processaFrase.h"

/* Lê uma frase do arquivo e armazena na string chamada buffer */
void get_frase(FILE *fp, char* buffer){
  int i = 0;
  char c;

  c = fgetc(fp);
  while(!isalpha(c) && c != EOF){
    c = fgetc(fp);
  }
  while(c != '\n' && c != '\r' && c != EOF){
    buffer[i] = c;
    c = fgetc(fp);
    i++;
  }
  buffer[i] = '\0';
}

/* Função que quebra uma frase em um vetor de palavras */
int get_palavras(char* frase, char* palavra, int posicao_atual){
  int i = 0;
  int nova_posicao = posicao_atual;

  while(!isalpha(frase[nova_posicao]) && nova_posicao < strlen(frase)){
    nova_posicao = nova_posicao + 1;
  }

  while((isalpha(frase[nova_posicao]) || frase[nova_posicao] =='-' || frase[nova_posicao] == '\'') && nova_posicao < strlen(frase)){
    /*Se for letra coloca na palavra, se nao for ignora e continua*/		
    if(isalpha(frase[nova_posicao])){        
      palavra[i] = frase[nova_posicao];
      i = i + 1;
    }
    nova_posicao = nova_posicao + 1;
  }
  palavra[i] = '\0';
  return nova_posicao;
}

/* Função que verifica a ocorrência de um palindromo em uma frase */
int verifica_palindromo(char *palavra, int *contador){
  int i, j;
  for(i = 0, j = strlen(palavra)-1; i <=j; i++, j--){
    while(!isalpha(palavra[i])) i++;
    while(!isalpha(palavra[j])) j--;
    if(tolower(palavra[i]) != tolower(palavra[j])){
      return 0;
    }
  }
  (*contador) = (*contador) + 1;
  return 1;
}
